//
//  NSNumber+UtilsExtras.m
//  SPay.base
//
//  Created by wongfish on 15/5/13.
//  Copyright (c) 2015年 wongfish. All rights reserved.
//

#import "NSNumber+UtilsExtras.h"

@implementation NSNumber (UtilsExtras)
#pragma mark - 无格式保留小数位
/**
 无格式保留小数位
 @param minDigits 最少小数位
 @param maxDigits 最大小数位
 @return 字符串
 */
- (NSString*)formatterNoStyleString:(NSUInteger)minDigits
                          maxDigits:(NSInteger)maxDigits {
    
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    formatter.numberStyle = kCFNumberFormatterDecimalStyle;
    formatter.maximumFractionDigits = minDigits;
    formatter.minimumFractionDigits = maxDigits;
    NSString *text = [formatter stringFromNumber:self];
    return text;
}

#pragma mark - 比率转换
/**
 比率转换
 @param rateStr 0.01百分比，0.001千分比
 @param minDigits 最少小数位
 @param maxDigits 最大小数位
 @return 字符串
 */
- (NSString*)billRateToString:(NSString*)rateStr
                    minDigits:(NSUInteger)minDigits
                    maxDigits:(NSInteger)maxDigits {
    
    NSNumber *number = [[NSDecimalNumber decimalNumberWithString:[self stringValue]] decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:rateStr]];
    
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    formatter.numberStyle = kCFNumberFormatterDecimalStyle;
    formatter.minimumFractionDigits = minDigits;
    formatter.maximumFractionDigits = maxDigits;
    NSString *billRate = [formatter stringFromNumber:number];
    return [NSString stringWithFormat:@"%@",billRate];
}

#pragma mark - 货币格式转换
/**
 转换货币类型
 @param currencySymbol 币种
 @param minDigits 最少小数位
 @param maxDigits 最大小数位
 @return 字符串
 */
- (NSString*)currencyString:(NSString*)currencySymbol
                  minDigits:(NSUInteger)minDigits
                  maxDigits:(NSInteger)maxDigits {
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    formatter.numberStyle = kCFNumberFormatterCurrencyStyle;
    formatter.currencySymbol = currencySymbol;
    formatter.maximumFractionDigits = maxDigits;
    formatter.minimumFractionDigits = minDigits;
    NSString *currency = [formatter stringFromNumber:self];
    return currency;
}


#pragma mark - 转换单位（分——元）
/**
 将钱单位转为元(NSNumber-NSString)
 @return 返回字符串
 */
- (NSString*)numberToNSDecimalString {
    return [[[NSDecimalNumber decimalNumberWithString:[self stringValue]] decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:@"0.01"]] stringValue];
}

/**
 将钱单位转为元(NSNumber-NSNumber)
 @return 返回金额
 */
- (NSNumber*)numberToNSDecimalNumber {
    NSNumber *number = [[NSDecimalNumber decimalNumberWithString:[self stringValue]] decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:@"0.01"]];
    return number;
}

#pragma mark - 时间戳转化为时间格式数据
//将服务器返回的时间戳转换,服务器是精确到毫秒的
- (NSNumber*)toTimeIntervalSince1970 {
    long long i = [self longLongValue];
    return   [NSNumber numberWithLongLong:(i / 1000)];
}

@end
